package org.anderground.modules.editor.tools;

import org.anderground.core.model.ModelData;
import org.anderground.core.model.Station;
import org.anderground.core.model.Tunnel;

public interface EditorTool {

	String getName();

	void call(ModelData data, Station[] selectedStations,
			Tunnel[] selectedTunnels);

	/**
	 * Calls tool in automatic mode when application runs in console mode
	 * 
	 * @param data
	 *            current model data
	 * @param key
	 *            - name of argument, that provoke this call
	 * @param args
	 *            - subargs of argument (for example "-resize 10x": 10x is
	 *            subarg)
	 */
	void callInConsole(ModelData data, String key, String[] args);

	/**
	 * get list of arguments that will provoke call of tool in console mode
	 * 
	 * @return
	 */
	String[] getConsoleArgs();
}
